package com.dkm.orproject.dkmoa.service.serviceimpl;

import com.dkm.orproject.dkmoa.dao.OaClientMapper;
import com.dkm.orproject.dkmoa.domain.OaClient;
import com.dkm.orproject.dkmoa.service.OaClientService;
import com.dkm.orproject.utils.utils.IdToobtainUtils;
import com.dkm.orproject.utils.utils.ThreeVo;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;


/**
 *  @ClassName : OaClientServiceImpl  //类名
 *  @Description : OaClientAction的service层实现类 //描述
 *  @Author : zmh //作者
 *  @Date: 2020-11-17 09:28  //时间
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class OaClientServiceImpl implements OaClientService {

    /**
     * 客户mapper对象
     */
    @Resource
    OaClientMapper oaClientMapper;

    /**
     * id生成工具
     */
    @Autowired
    IdToobtainUtils utils;

    /**
     * 根据id删除客户
     * @param oaClient
     * @return 回调函数
     */
    @Override
    public int deleteById(OaClient oaClient) {
        return oaClientMapper.deleteByPrimaryKey(oaClient.getPkClientId());
    }

    /**
     * 插入一条客户数据
     * @param oaClient 客户对象
     * @return 回调函数
     */
    @Override
    public int insertOaClient(OaClient oaClient) {
        oaClient.setPkClientId(utils.getNumberId());
        return oaClientMapper.insertSelective(oaClient);
    }

    /**
     * 根据id查询客户
     * @param pkClientId 客户id
     * @return 客户对象模型
     */
    @Override
    public OaClient selectByPrimaryKey(Long pkClientId) {
        return oaClientMapper.selectByPrimaryKey(pkClientId);
    }

    /**
     * 修改客户对象
     * @param oaClient 客户对象
     * @return 回调函数
     */
    @Override
    public int updateByPrimaryKeySelective(OaClient oaClient) {
        return oaClientMapper.updateByPrimaryKeySelective(oaClient);
    }

    /**
     * 批量删除客户
     * @param list 客户id集合
     * @return 回调函数
     */
    @Override
    public int deleteAll(List<Long> list) {
        return oaClientMapper.deleteAll(list);
    }

    /**
     * 分页查询客户
     * @param oaClient 客户模型对象
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param page 当前页数
     * @param limit 每页行数
     * @return 客户的集合
     */
    @Override
    public List<OaClient> selectAll(OaClient oaClient, String startTime, String endTime, Integer page, Integer limit) {
        PageHelper.startPage(page,limit);
        return oaClientMapper.selectAll(oaClient,startTime,endTime);
    }

    /**
     * 客户总记录数
     * @param oaClient 客户模型对象
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 总行数
     */
    @Override
    public Long rowCount(OaClient oaClient, String startTime, String endTime) {
        return oaClientMapper.rowCount(oaClient,startTime,endTime);
    }


}
